<?php 

/**
 * 
 * 
 */
class Admin_Model_Habilitacoes
{
    /**
     * Função que irá buscar as habilitações de um determinado professor.
     * 
     * @todo Função identifica em Remanejamento_Model_Inscricao gerar uma classe para ser extendida ou utilizar a ourta.
     * @param {string} [$cdMatricula]
     * @return {array} [$result]
     */
    public function listarHabilitacoesPorMatricula($cdMatricula) 
    {
        try {
            $result = array();
            
            if (!empty($cdMatricula)) {
                // Buscando as habilitações correspondentes a um determinado professor.
                $tblHabEmp = new Remanejamento_Model_DbTable_Sigrh_HabilitacoesEmpregados();
                $slcHabEmp = $tblHabEmp->select();
                $slcHabEmp->from(array('habem' => 'habilitacoes_empregados'), array('habem.hab_cd_habilitacao'), 'sigrh')
                          ->joinLeft(array('hab' => 'habilitacoes'), 'habem.hab_cd_habilitacao = hab.thb_cd_habilit', array('hab.tbh_nome'), 'sigrh')
                          ->setIntegrityCheck(false)
                          ->where('emp_cd_matricula = ?', $cdMatricula);
                $data = $tblHabEmp->fetchAll($slcHabEmp);

                // Gera um array com todas as habilitações do professor.
                foreach ($data as $hab) {
                    $result[$hab->hab_cd_habilitacao] = $hab->tbh_nome;
                }
            }
            return $result;
            
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }
    
    
    /**
     * Função que irá listar habilitações conforme o termo informado na busca
     * -- Utilizado apenas para autocomplete.
     * 
     * @param type $term
     * @return array|string
     */
    public function listarHabilitacoes($term) 
    {
        $result = array();
        
        try {
            $tbl = new Admin_Model_DbTable_Sigrh_Habilitacoes();           
            $slc = $tbl->select();
            $slc->from(array('hab' => 'habilitacoes'), array("hab.thb_cd_habilit", "tbh_nome"), 'sigrh')
                ->where("hab.tbh_nome like ?", '%'. $term .'%');
            $data = $tbl->fetchAll($slc);
            
            if (!empty($slc) && $slc >= 1) {
                foreach ($data as $res) {
                    $result[] = $res['thb_cd_habilit'] .' - '. $res['tbh_nome'];
                }
            }
            
        } catch (Exception $exc) {
            return $result;
        }

        return $result;
    }

}